package 简单.字符串;

/**
 * 句子是由若干 token 组成的一个列表，token 间用 单个 空格分隔，句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ，要么是一个由小写英文字母组成的 单词 。
 * <p>
 * 示例，"a puppy has 2 eyes 4 legs" 是一个由 7 个 token 组成的句子："2" 和 "4" 是数字，其他像 "puppy" 这样的 tokens 属于单词。
 * 给你一个表示句子的字符串 s ，你需要检查 s 中的 全部 数字是否从左到右严格递增（即，除了最后一个数字，s 中的 每个 数字都严格小于它 右侧 的数字）。
 * <p>
 * 如果满足题目要求，返回 true ，否则，返回 false 。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/check-if-numbers-are-ascending-in-a-sentence
 */
public class 检查句子中的数字是否递增_2042 {

    public static void main(String[] args) {

        String s = "0";
        System.out.println(s.charAt(0) == 48);
    }

    public static boolean areNumbersAscending(String s) {
        //题目说了一个空格分割
        String[] split = s.split(" ");
        int pre1 = -1;
        for (String str : split) {
            if (str.charAt(0) >= 48 && str.charAt(0) <= 57) {
                Integer cur = Integer.valueOf(str);
                if (pre1 != -1) {
                    if (cur <= pre1) {
                        return false;
                    } else {
                        pre1 = cur;
                    }
                } else {
                    pre1 = cur;
                }
            }
        }
        return true;
    }

    public static boolean isNumberContains(String str) {
        if (str.contains("0") || str.contains("1") || str.contains("2")
                || str.contains("3") || str.contains("4") || str.contains("5")
                || str.contains("6") || str.contains("7") || str.contains("8")
                || str.contains("9")) {
            return true;
        }
        return false;
    }

    /**
     * 判断是否是数字优化
     *
     * @param str
     * @return
     */
    public static boolean isbNumberAscii(String str) {
        if (str.charAt(0) >= 48 && str.charAt(0) <= 57) {
            return true;
        }
        return false;
    }

    public boolean areNumbersAscending2(String s) {
        int pre = -1;

        for (String str : s.split(" ")) {
            if (Character.isDigit(str.charAt(0))) {
                int cur = 0;
                for (int i = 0; i < str.length(); i++) {
                    cur *= 10;
                    cur += str.charAt(i) - '0';
                }
                if (cur <= pre) {
                    return false;
                }
                pre = cur;
            }
        }

        return true;
    }

}
